package com.lqk.demo.concurrencytools.threadpool.executors.scheduledthread;

import lombok.extern.slf4j.Slf4j;

import java.util.Timer;
import java.util.TimerTask;

import static com.lqk.demo.n2.util.Sleeper.sleep;

/**
 * @author lqk
 * @date 2022/1/10 14:28
 *
 * Timer 的优点在于简单易用，但由于所有任务都是由同一个线程来调度，因此所有任务都是串行执行的，同一时间只能有一个任务在执行，前一个
 * 任务的延迟或异常都将会影响到之后的任务。
 *
 * 相当于 任务1 执行结束后再等1秒钟执行任务2
 */

@Slf4j
public class TestTimer {
    public static void main(String[] args) {
        Timer timer = new Timer();
        TimerTask task1 = new TimerTask() {
            @Override
            public void run() {
                log.debug("task1");
                sleep(2);
            }
        };
        TimerTask task2 = new TimerTask() {
            @Override
            public void run() {
                log.debug("task2");
            }
        };

        log.debug("start...");
        timer.schedule(task1,1000);
        timer.schedule(task2,1000);
    }
}
